package cn.wolfcode.business.mapper;

import cn.wolfcode.business.domain.BusStatement;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Mapper
public interface BusinessStatementMapper {

    List<BusStatement> selectStatementList(BusStatement busStatement);

    BusStatement selectStatementById(Long id);

    int insert(BusStatement busStatement);

    int update(BusStatement busStatement);

/**
 * 根据ID删除记录的方法
 * @param id 要删除记录的唯一标识符
 * @param isDelete 删除标识，用于确认是否执行删除操作
 * @return 返回操作影响的行数，通常用于判断删除是否成功
 */
    // 定义一个名为delete的方法，接收两个参数：id(Long类型)和isDelete(Integer类型)
    // 使用@Param注解指定参数在SQL语句中的名称
    // 方法返回值为int类型，表示受影响的行数
    int delete(@Param("id") Long id, @Param("isDelete") Integer isDelete);

    void updateAmount(@Param("statementId") Long statementId, @Param("totalAmount") BigDecimal totalAmount, @Param("totalQuantity") BigDecimal totalQuantity, @Param("discountAmount") BigDecimal discountAmount);

    int updatePayStatus(@Param("statementId") Long statementId, @Param("payId") Long payId, @Param("date") Date date, @Param("statusPaid") Integer statusPaid);

    BusStatement selectByAppointmentId(Long id);
}
